//	fbNotify: A Facebook notification system.
//	Copyright (C) 2006 fbNotify Team.
//
//	This program is free software; you can redistribute it and/or modify
//	it under the terms of the GNU General Public License as published by
//	the Free Software Foundation; either version 2 of the License, or
//	(at your option) any later version.
//
//	This program is distributed in the hope that it will be useful,
//	but WITHOUT ANY WARRANTY; without even the implied warranty of
//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//	GNU General Public License for more details.
//
//	You should have received a copy of the GNU General Public License along
//	with this program; if not, write to the Free Software Foundation, Inc.,
//	51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

#ifndef FBNLOGGER_H
#define FBNLOGGER_H

#include <QtCore>

#include "../kernel/FBNKernelEnums.h"
#include "../kernel/FBNKernelStructs.h"

class FBNLogger
{
public:
	FBNLogger(const QString &filename);
	~FBNLogger();

	void enter(const QString &data, bool timeStamp = true);
	void leave(const QString &data, bool timeStamp = true);
	void writeData(const QString &dataName, const QVariant &data, bool block = false, bool timeStamp = true);
	void writeError(const QString &errorName, const QVariant &data, bool block = false, bool timeStamp = true);
	void writeLine(const QString &line, bool timeStamp = true);

	void writeFacebookError(const facebook::ErrorData &data, bool timeStamp = true);

protected:
	QFile file;
	QTextStream * fs;

	QString indent();
	QString makeTimeStamp();

	int indentCount;
};

#endif
